package com.yidu.drug.action;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.google.gson.Gson;
import com.yidu.drug.common.Message;
import com.yidu.drug.model.MaterialTypeModel;
import com.yidu.drug.model.MaterialsModel;
import com.yidu.drug.service.MaterialTypeService;
import com.yidu.drug.service.MaterialsService;

/**
 * 材料的action
 * @author 王志伟
 * @date 2018年8月9日 下午2:10:14
 * @version 1.0
 */
@Controller
@RequestMapping("materials")
public class MaterialsAction {
	//材料的service
	@Resource
	private MaterialsService materialsService;

	//材料类型的service
	@Resource
	private MaterialTypeService materialTypeService;
	
	//消息类
	Message m=new Message();
	/**
	 * 查询所有的方法
	 * @param limit 每页的行数
	 * @param page 开始的页数
	 * @param matName 材料名称
	 * @return Map集合
	 * @throws IOException 
	 */
	@RequestMapping("/findAll") 
	public void findAll(String limit,String page,String matName,HttpServletResponse response,String drugId,String typeId) throws IOException{
		System.out.println("名字："+matName);
		System.out.println("药品IDWie："+drugId);
		System.out.println("材料类型ID为："+typeId);
		response.setCharacterEncoding("UTF-8");
		
		Gson gson = new Gson();
		
		PrintWriter out = response.getWriter();
		
		Map<String,Object> map = materialsService.findAll(limit,page,matName,drugId,typeId);
		
		String json = gson.toJson(map);
		
		out.print(json);
		
		out.close();
		 
		
		
	}
	
	/**
	 * 查询类型所有
	 */
	@RequestMapping("/findAllType")
	@ResponseBody
	public List<MaterialTypeModel> findType(){
		List<MaterialTypeModel> list=materialTypeService.findAllType();
		return list;
	}
	
	/**
	 * 增加
	 * @param record
	 */
	@RequestMapping("/add")
	public Message insertSelective(MaterialsModel record){
		System.out.println("进入材料增加的方法，价格为："+record.getMatPrice());
		//得到增加的行数
		int count=materialsService.insertSelective(record);
		System.out.println(count+"增加的行数");
		m.setNum(count);
		return m;
	}
	
	/**
	 * 删除
	 */
	@RequestMapping("delete")
	@ResponseBody
	public Message deleteByMatId(String matId){
		System.out.println("进入材料类型删除的方法,ID为："+matId);
		//根据材料类型ID删除得到删除的行数
		int count=materialsService.deleteByPrimaryKey(matId);
		/*
		 * 判断返回的数据
		 */
		m.setNum(count);
		return m;
	}
	
	/**
	 * 根据ID查询
	 */
	@RequestMapping("findById")
	@ResponseBody
	public MaterialsModel findById(String matId){
		System.out.println("进入材料类型根据ID查询的方法， ID为："+matId);
		//根据材料类型ID查询得到对象返回
		MaterialsModel mat=materialsService.selectByPrimaryKey(matId);
		return mat;
	}
	
	/**
	 * 根据ID修改
	 */
	@RequestMapping("update")
	public Message updateById(MaterialsModel mat){
		System.out.println("进入材料根据ID修改的方法，ID为："+mat.getMatId());
		//修改信息
		int count=materialsService.updateByPrimaryKeySelective(mat);
		m.setNum(count);
		return m;
	}
}
